package com.example.mylibrary.net;

import com.example.mylibrary.net.request.AcceptHeartRequest;
import com.example.mylibrary.net.request.CheckVersionRequest;
import com.example.mylibrary.net.request.CollectEquipmentRequest;
import com.example.mylibrary.net.request.RoomDetailRequest;
import com.example.mylibrary.utils.RxUtils;
import com.tvpusher.basemodule.net.request.SetEqTypeReqBean;

import io.reactivex.Observable;
import io.reactivex.functions.Function;
import okhttp3.ResponseBody;
import retrofit2.Retrofit;

/**
 * @author mark.liu
 */
public class Api {
    private ApiService mApiService;

    public Api(Retrofit retrofit) {
        mApiService = retrofit.create(ApiService.class);
    }
//
//
//    private class HttpResultFunc<T> implements Function<HttpResult<T>, T> {
//        @Override
//        public T apply(HttpResult<T> httpResult) {
//            if (httpResult.getCode() != 200 || !"ok".equals(httpResult.getMsg())) {
//                throw new ApiException(httpResult);
//            }
//            return httpResult.getData();
//        }
//    }
//
//    public void test(ProgressSubscriber subscriber) {
//        RoomDetailRequest request = new RoomDetailRequest();
//        request.setRoom_id("233");
//        mApiService.roomDetail(request).compose(RxUtils.ioMain()).map(new HttpResultFunc<>()).subscribe(subscriber);
//    }
//
//    /**
//     * 设备信息采集
//     *
//     */
//    public Observable<HttpResult> CollectEquipment(CollectEquipmentRequest request) {
//        return mApiService.CollectEquipment(request).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * 接收心跳
//     */
//    public Observable<HttpResult<AcceptHeartResBean>> getAcceptHeart(AcceptHeartRequest request) {
//        return mApiService.getAcceptHeart(request).compose(RxUtils.ioMain());
//    }
//
//
//    /**
//     * 检查版本更新
//     */
//    public Observable<HttpResult<CheckVersionResponse>> CheckVersion(CheckVersionRequest request) {
//        return mApiService.CheckVersion(request).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * 黑屏
//     */
//    public Observable<HttpResult<Boolean>> BlackStatus(AcceptHeartRequest request) {
//        return mApiService.BlackStatus(request).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * 品牌信息
//     */
//    public Observable<HttpResult<BrandInfosResponse>> GetBrandInfos(BaseRequest request) {
//        return mApiService.GetBrandInfos(request).compose(RxUtils.ioMain());
//    }
//
//    /**
//     *  应用列表
//     */
//    public Observable<GetApplicationInfosResponse> GetApplicationInfos(BaseRequest request) {
//        return mApiService.GetApplicationInfos(request).compose(RxUtils.ioMain());
//    }
//    /**
//     *  应用列表
//     */
//    public Observable<NewGetApplicationInfosResponse> NewGetApplicationInfos(BaseRequest request) {
//        return mApiService.NewGetApplicationInfos(request).compose(RxUtils.ioMain());
//    }
//
//    /**
//     *  模板
//     */
//    public Observable<HttpResult<TemplateResponse>> GetTemplateInfos(BaseRequest request) {
//        return mApiService.GetTemplateInfos(request).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * 下载文件
//     */
//    public Observable<ResponseBody> DownLoadFile(String fileUrl) {
//        return mApiService.DownLoadFile(fileUrl);
//    }
//
//    /**
//     *  开机广告
//     */
//    public Observable<GetStartAdsResponse> GetStartAds(BaseRequest request) {
//        return mApiService.GetStartAds(request).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * 获取导航栏
//     */
//    public Observable<NavigationResBean> getNavigation() {
//        return mApiService.getNavigation(new BaseRequest()).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * 获取热门推荐
//     */
//    public Observable<HotRecommendedResBean> getHotRecommends() {
//        return mApiService.getHotRecommends(new BaseRequest()).compose(RxUtils.ioMain());
//    }
//
//    public Observable<VideoListResBean> getVideoList(String key, int pageNum, int pageSize) {
//        return mApiService.getVideoList(key, pageNum, pageSize).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * Ext模块请求参数
//     */
//    public Observable<QVResponse> GetQQVideoData(QQVideoRequest request) {
//        return mApiService.GetQQVideoData(request.buildUrl()).compose(RxUtils.ioMain());
//    }
//
//    /**
//     * 获取全屏广告接口
//     */
//    public Observable<HttpResult> setEqType(SetEqTypeReqBean reqBean) {
//        return mApiService.setEqType(reqBean).compose(RxUtils.ioMain());
//    }
//
//    public Observable<HttpResult<GetOnGoingAdResBean>> getFullScreenAdList() {
//        return mApiService.GetOnGoingAd().compose(RxUtils.ioMain());
//    }
//
//    public Observable<WeatherInfoBean> getWeather() {
//        return mApiService.getWeather("https://v1.alapi.cn/api/tianqi/now").compose(RxUtils.ioMain());
//    }
}
